Computer software has become an indispensable tool in many aspects of human life. Day-to-day activities (e.g., shopping, banking, signing up for health insurance, etc.) are often conducted via web and mobile applications. Virtually all organizations, both public and private, rely on software applications to process information and manage operations. Many of these software applications handle sensitive information such as personal financial records, trade secrets, classified government information, etc. Safety-critical systems in infrastructure, transportation, medicine, etc. are increasingly being controlled by software.
Every year, trillions of dollars are spent globally to develop and maintain software applications. Yet system failures and data breaches are constantly in the news. Decades of research has failed to produce scalable and accurate solutions for improving reliability and security of software applications.